// $Id: display.h 52 2007-05-30 16:34:55Z DarkAn9el $
/***************************************************************************
 *   Copyright (C) 2007 by Andrea Blankenstijn, Ulrich Giraud              *
 *   <darkan9el@gmail.com>, <blade.124@laposte.net>                        *
 *                                                                         *
 *   Permission is hereby granted, free of charge, to any person obtaining *
 *   a copy of this software and associated documentation files (the       *
 *   "Software"), to deal in the Software without restriction, including   *
 *   without limitation the rights to use, copy, modify, merge, publish,   *
 *   distribute, sublicense, and/or sell copies of the Software, and to    *
 *   permit persons to whom the Software is furnished to do so, subject to *
 *   the following conditions:                                             *
 *                                                                         *
 *   The above copyright notice and this permission notice shall be        *
 *   included in all copies or substantial portions of the Software.       *
 *                                                                         *
 *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       *
 *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    *
 *   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
 *   IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR     *
 *   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
 *   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR *
 *   OTHER DEALINGS IN THE SOFTWARE.                                       *
 ***************************************************************************/

#ifndef QDISPLAY_H
#define QDISPLAY_H

/**
 * \class CalcDisplay display.h
 * \brief Gestion de l'affichage.
 *
 * Cette classe gère l'affichage de la calculatrice
 * et l'historique des calculs et leur résultat.
 */
#include <QLineEdit>

class CalcDisplay : public QWidget
{
protected:
  CalcDisplay(QWidget *parent = 0); ///< Constructeur de CalcDisplay.

  QString data; ///< Données actuellement affichées.
  QVarLengthArray<QString, 10> history[2](10); ///< Historique des calculs et leur résultat.

private:
  Q_OBJECT

protected slots:
  void clear(); ///< Remet à zéro l'affichage.
  void addtoDisplay(QString data); ///< Ajoute data à l'affichage.
  void replaceDisplay(QString data); ///< Remplace l'affichage actuel par data.
  void setDisplayMode(short mode); ///< définie le mode d'affichage (flottant/scientifique).
}

#endif
